package com.project.service;

import com.github.pagehelper.PageInfo;
import com.project.bean.EmployeeBean;

import java.util.List;

/**
 * 员工业务接口
 */
public interface IEmployeeService {
    public int PAGESIZE = 3;
    /**
     * 按排序规则模糊查询员工
     * @param pageNum 当前页数
     * @param name 员工姓名
     * @param job 特长
     * @param state 员工状态
     * @param ruler 排序规则
     * @return 员工集合
     */
    public PageInfo<EmployeeBean> findByItem(int pageNum, String name, String job, String state, String ruler);

    /**
     * 添加员工
     * @param employeeBean 员工对象
     */
    public void add(EmployeeBean employeeBean);

    /**
     * 员工离职，将该员工正在进行的项目（项目完成时间为“未完成”）完成时间修改为当前时间
     * @param id
     * @param state
     */
    public void updateState(int id,String state);

    /**
     * 按id修改员工信息
     * @param id id
     * @param phone 新电话
     * @param money 新工资
     */
    public void update(int id,int phone,int money);

    /**
     * 按id查询员工信息并查询参与的项目的名称，已经完成项目的开始时间和结束时间
     * @param id 员工id
     * @return 员工对象
     */
    public EmployeeBean findById(int id);

    /**
     * 动态条件查询没有参与指定项目在职人员，其中项目id和员工状态为固定条件，姓名专长为动态条件
     * @param processId 项目id
     * @param name 员工姓名
     * @param job 员工专长
     * @return 员工列表
     */
    public List<EmployeeBean> findOther(int processId,String name,String job);
}
